from pdf2image import convert_from_path
import os
import argparse

def pdf_to_images(pdf_path, output_dir, dpi=200):
    """
    将PDF文件转换为图片
    
    参数:
        pdf_path: PDF文件的路径
        output_dir: 输出图片的目录
        dpi: 图片分辨率，默认200
    """
    # 确保输出目录存在
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)
    
    try:
        # 将PDF转换为图片
        images = convert_from_path(pdf_path, dpi=dpi)
        
        # 保存每一页为单独的图片
        for i, image in enumerate(images):
            image_path = os.path.join(output_dir, f'page_{i+1}.jpg')
            image.save(image_path, 'JPEG')
            print(f'已保存第 {i+1} 页到: {image_path}')
            
        print(f'转换完成！共转换 {len(images)} 页')
        
    except Exception as e:
        print(f'转换过程中出现错误: {str(e)}')

if __name__ == '__main__':
    # 创建命令行参数解析器
    parser = argparse.ArgumentParser(description='将PDF文件转换为图片')
    parser.add_argument('pdf_path', type=str, help='PDF文件的路径')
    parser.add_argument('output_dir', type=str, help='输出图片的目录路径')
    parser.add_argument('--dpi', type=int, default=200, help='输出图片的DPI值（默认：200）')
    
    # 解析命令行参数
    args = parser.parse_args()
    
    # 调用转换函数
    pdf_to_images(args.pdf_path, args.output_dir, args.dpi)
